package com.zmn.oms.common.dio.channel;

import com.zmn.oms.common.dio.normal.orderadd.OrderProductDIO;
import com.zmn.oms.common.dio.normal.OrderWorkBaseDIO;
import com.zmn.oms.common.dio.normal.orderadd.UserDIO;
import com.zmn.oms.common.dio.shop.ExternalShopDIO;
import com.zmn.oms.common.dto.OrderWorkAddOperator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 类描述：渠道api
 *
 * @author wangxiaokun
 * @since 2021/04/07 18:36
 */
@Data
@ToString(callSuper = true)
@ApiModel("接口添加订单入参")
public class ChannelApiOrderWorkAddDIO extends OrderWorkAddOperator implements Serializable {

    private static final long serialVersionUID = -786648530715104200L;

    @ApiModelProperty("厂商ID不能为空")
    private Integer factoryId;

    /**
     * 用户信息
     */
    @Valid
    @ApiModelProperty(value = "用户信息", required = true)
    @NotNull(message = "用户信息不能为空")
    private UserDIO userDIO;

    /**
     * 订单基础信息
     */
    @Valid
    @ApiModelProperty(value = "订单基础信息", required = true)
    @NotNull(message = "订单基础信息不能为空")
    private OrderWorkBaseDIO orderWorkBaseDIO;

    /**
     * 产品
     */
    @Valid
    @ApiModelProperty(value = "服务产品不能为空", required = true)
    @NotNull(message = "服务产品不能为空")
    private OrderProductDIO orderProductDIO;

    /**
     * 渠道API扩展数据
     */
    @ApiModelProperty(value = "渠道API扩展数据")
    private ChannelApiExtraData channelApiExtraData;

    @ApiModelProperty("外部店铺信息")
    private ExternalShopDIO externalShopInfo;
}
